// promise 是一个解决层级不断嵌套地回调地狱问题,但代码量不会精简
// 把多层地嵌套改成串联式地函数调用

//1. promise 是一个构造函数，里面有很多地回调方法，其中有resolve 和 reject
//2.1 resolve---eg：决定，决策 --重申为：成功之后要做地事情， =》读取成功的函数
//2.2 reject----eg: 拒绝，抛弃----重申为：失败之后要做地事情，=》读取失败的函数

//3.在promise 构造函数的 pototype属性上，有一个 .then()方法
//也就是说，promise 构造函数的实例上都可以用 .then() 这个方法

//4.1 promise 创建的实例是一个异步操作，异步操作的结果只能有异步成功或者失败两种状态。
//4.2 由于属于异步操作，所以不能通过 return来拿到结果，
//    只能通过回调函数拿到成功或者失败的结果




const fs = require("fs")

//创造一个Promise实例对象
/* var promise = new Promise(function(){

    fs.readFile('./files/2.txt','utf-8',(err,data)=>{
        if(err) throw err//如果读取错误就会系统提示错误，同时结束函数调用
        console.log(data)
    })

})

 */

//  Promise 的参数是一个回调函数

function getFileByPath(fpath){
    var promise = new Promise(function(){

        fs.readFile(fpath,'utf-8',(err,data)=>{//读取2.txt开始
            if(err) throw err//如果读取错误就会系统提示错误，同时结束函数调用
            console.log(data)
        })//读取2.txt结束

    })
}

//第一个第二个还可以成功读取数据，第三个就出错了
getFileByPath('./files/1.txt')
getFileByPath('./files/2.txt')





